Databases are generally used to store large quantities of information, in an organized manner that enables fast and convenient searching and other database operations. Often, such large databases are accessed by multiple entities (e.g., users, or clients) during overlapping time frames. In order to maintain data consistency, lock management techniques are used to ensure that a given data entry may only be changed by one such entity at a time.
For example, lock management techniques may utilize a lock table that stores an entry for each locked database element (e.g., for a particular database table, or data record), along with a relevant lock value(s) (e.g., an owner, a transaction identifier, and/or a lock type). Each entry of such a lock table may be assigned through the use of a hashing algorithm. For example, when a lock is required by a database client/user for a particular database table, a hash value for the database table to be locked may be calculated. Then, a corresponding entry in the lock table may be generated and stored, including associated lock value(s).
Many such lock tables typically provide suitable results in terms of maintaining data consistency. However, lock tables have various types of overhead, as well. For example, creating and maintaining lock tables utilizes both memory and processing resources. Further, current and future databases provide extremely fast data access times. In many cases, the time needed to implement lock management operations is undesirably long compared to the corresponding database operations being implemented. As a result, the lock management operations may cause a bottleneck in the speed of a database transaction as a whole.